/**********************************************************************************************************************
 *
 * Project:    mGameEngine
 * File:       mouselistener.h
 * Author:     karooolek
 * Created on: 2009-01-18
 *
 **********************************************************************************************************************/

#ifndef MOUSELISTENER_H_
#define MOUSELISTENER_H_

#include "mousebutton.h"
#include "../common.h"

namespace mGameEngine
{
namespace Input
{

/**
 * Interface for objects listening to mouse events.
 */
class MouseListener
{
public:
    virtual ~MouseListener()
    {
    }

    /**
     * Mouse button is pressed.
     * @param btn mouse button.
     */
    virtual void mouseButtonDown(MouseButton btn) = 0;

    /**
     * Mouse button is released.
     * @param btn mouse button.
     */
    virtual void mouseButtonUp(MouseButton btn) = 0;

    /**
     * Mouse moved.
     * @param dposition position difference in window coordinates.
     */
    virtual void mouseMoved(const Vector3 &dposition) = 0;
};

}
}

#endif // MOUSELISTENER_H_
